package org.yatr.ttcn.rt.impl;

import org.etsi.ttcn.tci.QualifiedName;
import org.etsi.ttcn.tci.TciBehaviourId;
import org.etsi.ttcn.tci.TciModuleId;
import org.etsi.ttcn.tci.TciParameter;
import org.etsi.ttcn.tci.TciParameterList;
import org.etsi.ttcn.tci.TciTestCaseId;
import org.etsi.ttcn.tci.Value;
import org.etsi.ttcn.tri.TriComponentId;
import org.yatr.tci.BooleanValueYatr;
import org.yatr.tci.IntegerValueYatr;

public class TypeFactory {
	public static TciModuleId newTciModuleId(String moduleName, String other) {
		return new QualifiedNameYatr(moduleName, other);
	}

	public static QualifiedName newQualifiedName(String moduleName,
			String baseName) {
		return new QualifiedNameYatr(moduleName, baseName);
	}
	
	public static TciTestCaseId newTciTestCaseId(String moduleName, String baseName) {
		return new QualifiedNameYatr(moduleName, baseName);
	}
	
	public static TciBehaviourId newTciBehaviourId(String moduleName, String baseName) {
		return new QualifiedNameYatr(moduleName, baseName);
	}
		
	public static TriComponentId newTriComponentId(String moduleName, String typeName) {
		return new TriComponentIdImpl(moduleName, typeName);
	}
	
	public static TciParameter newTciParameter(Value param) {
		return new TciParameterImpl(param);
	}

	public static TciParameterList newTciParameterList(Value... actualArgs) {
		TciParameterList pl= new TciParameterListImpl();
		for(Value v: actualArgs){
			pl.add(newTciParameter(v));
		}
		return pl;
	}

	//....
}
